wayland/surface: Don't save uninitialized size
authorJonas Ådahl <jadahl@gmail.com>
Tue, 24 Nov 2020 21:58:02 +0000 (22:58 +0100)
committerJonas Ådahl <jadahl@gmail.com>
Mon, 7 Dec 2020 08:46:39 +0000 (09:46 +0100)
GdkSurface's are initialized to have the size 1x1, as otherwise we'd
receive an X11 error, would a corresponding X11 window be created.

This confuses the "saved size" mechanisms in the Wayland backend, as
treats 0 as uninitialized, and not 1.

Fix this simply not saving size that if it's smaller or equal than 1.

gdk/wayland/gdksurface-wayland.c

index bcbc647a285caa1e608fffc0ccbab8c8426b429f..16886f57707f62edfed8bb5a032fe182f34852a5 100644 (file)
@@ -341,6 +341,9 @@ _gdk_wayland_surface_save_size (GdkSurface *surface)
                         GDK_TOPLEVEL_STATE_TILED))
     return;
 
+  if (surface->width <= 1 || surface->height <= 1)
+    return;
+
   impl->saved_width = surface->width - impl->margin_left - impl->margin_right;
   impl->saved_height = surface->height - impl->margin_top - impl->margin_bottom;
 }